﻿using Renci.Data.Interop.OpenGIS.Xlink;

namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("target", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class TargetPropertyType : IAssociationAttributeGroup
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("MultiPointCoverage", Type = typeof(MultiPointCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurveCoverage", Type = typeof(MultiCurveCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurfaceCoverage", Type = typeof(MultiSurfaceCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolidCoverage", Type = typeof(MultiSolidCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("GridCoverage", Type = typeof(GridCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("RectifiedGridCoverage", Type = typeof(RectifiedGridCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("FeatureCollection", Type = typeof(FeatureCollectionType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("DirectedObservationAtDistance", Type = typeof(DirectedObservationAtDistanceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("DirectedObservation", Type = typeof(DirectedObservationType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Observation", Type = typeof(ObservationType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiGeometry", Type = typeof(MultiGeometryType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiPoint", Type = typeof(MultiPointType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurve", Type = typeof(MultiCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurface", Type = typeof(MultiSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolid", Type = typeof(MultiSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Point", Type = typeof(PointType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("LineString", Type = typeof(LineStringType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeCurve", Type = typeof(CompositeCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Curve", Type = typeof(CurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("OrientableCurve", Type = typeof(OrientableCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("PolyhedralSurface", Type = typeof(PolyhedralSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Tin", Type = typeof(TinType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("TriangulatedSurface", Type = typeof(TriangulatedSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSolid", Type = typeof(CompositeSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Solid", Type = typeof(SolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("LinearRing", Type = typeof(LinearRingType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Ring", Type = typeof(RingType), IsNullable = false)]
        public AbstractGMLType Item { get; set; }

        #region IAssociationAttributeGroup Members

        /// <summary>
        /// Gets or sets a reference to an XML Schema fragment that specifies the content model of the propertys value. This is in conformance with the XML Schema Section 4.14 Referencing Schemas from Elsewhere.
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute("remoteSchema", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string RemoteSchema { get; set; }

        #endregion

        #region ISimpleLink Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("type", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public string Type { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("href", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string Href { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("role", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string Role { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("arcrole", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string ArcRole { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("title", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public string Title { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("show", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public MetadataTypeShow Show { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ShowSpecified { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("actuate", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public MetadataTypeActuate Actuate { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActuateSpecified { get; set; }

        #endregion
    }
}
